<?php

class ocorrenciaLoader extends PluginLoader{
    
    public function __construct() {
        //$this->LoadModel('ocorrencia/Config/cache', 'cache');
        $this->LoadModel('usuario/login', 'uobj');
        parent::__construct();
    }
    public function setCommonVars(){
        if(!$this->uobj->IsLoged()){
            $_SESSION['firstlogin'] = true;
            if(CURRENT_CONTROLLER != "info"){
                $url = URL . "?url=ocorrencia/info&refer=".base64_encode(CURRENT_URL);
                SRedirect($url);
                //$this->uobj->needLogin(CURRENT_URL);
            }
        }else{
            if(isset($_SESSION['firstlogin'])){
                unset ($_SESSION['firstlogin']);
            }
        }

    }
    
    public function beforeCommonLoad($vars){
        //cookie::debugCookies();die();
        EventTube::clearRegion('menu-superior');
    }
    
    public function AfterExecute($vars) {
        parent::AfterExecute($vars);
         //carrega o menu lateral e o superior
        if($this->uobj->IsLoged()){
            $this->CheckMessages();
            $this->menu_superior();
            $this->menu_lateral();
            $this->LoadComponent('ocorrencia/search', 'sobj');
            $this->sobj->form('');
        }
    }
    
    private function menu_superior(){
        $this->LoadModel('ocorrencia/ocorrencias', 'oc');
        //$total = $this->oc->unread(0, 1, "", true);
        //$mensagens = ($total == 0)?"Mensagens":"Mensagens ($total)";
        $menu_array = array(
            'Inicial'            => array(
                '__id'    => 'Inicial', 
                'Inicial' => "ocorrencia/info/",
             ),
            'Grupos'             => array(
                '__id'        => 'Grupos de Trabalho', 
                'Grupos'      => "ocorrencia/grupo/index",
                'Criar Grupo' => 'ocorrencia/grupo/formulario',
                //'Filtros'     => array()
             ),
            'Assuntos'           => array(
                '__id' => 'Mensagens', "Assuntos" => "ocorrencia/ocorrencias/status/",
                'Criar Assunto' => 'ocorrencia/ocorrencias/formulario',
                'Não Lidos' => 'ocorrencia/ocorrencias/status/unread',
                'Ativos' => 'ocorrencia/ocorrencias/status/ativas',
                'Arquivados' => 'ocorrencia/ocorrencias/status/arquivadas',
                'Minhas Solicitações' => 'ocorrencia/ocorrencias/status/solicitadas',
                'Onde Sou Responsável' => 'ocorrencia/ocorrencias/status/responsável',
                
             ),
            //'Usuários'           => "ocorrencia/usuarios/all",
            'Participantes'      => array(
                '__id' => 'Usuários',
                'Participantes'        => 'usuario/login/logado',
                'Minha Conta'          => array('__id' => 'temp', 'Minha Conta' => 'usuario/login/logado'),
                'Logout'               => 'usuario/login/logout',
                
                'Gerenciar Usuários'   => "usuario/login/todos",
                'Incluir participante' => 'usuario/login/formulario',
             ),
            'Configurações'      => 'ocorrencia/configuracoes/',
            'TENAP'    => "http://tenap.com.br/"
        );

        /*
        if(!$this->uobj->UserIsAdmin()){
            unset($menu_array['Minha Conta']['Configurações']);
            unset($menu_array['Usuários']);
        }
        */
        //adiciona a parte do ocorrencia/info
        $this->LoadModel('ocorrencia/info', 'info');
        $arr2 = $this->info->getMenuArray();
        foreach($arr2 as $name => $var)  $menu_array['Inicial'][$name] = $var;
        
        if(isset($_SESSION['ocorrencia/grupo'])){
            $menu_array['Grupos']['Criar Subgrupo'] = "ocorrencia/grupo/subgrupo/".$_SESSION['ocorrencia/grupo'];
            $menu_array['Grupos']['Arquivar Grupo'] = "ocorrencia/grupo/arquivar/".$_SESSION['ocorrencia/grupo'];
            $menu_array['Grupos']['Pessoas no Grupo'] = "ocorrencia/grupo/participantes/".$_SESSION['ocorrencia/grupo'];
            $menu_array['Grupos']['Editar Grupo'] = "ocorrencia/grupo/arquivar/".$_SESSION['ocorrencia/grupo'];
            
            $menu_array['Assuntos']['Criar Assunto'] = "ocorrencia/grupo/novaocorrencia/".$_SESSION['ocorrencia/grupo'];
        }else unset($menu_array['Assuntos']['Criar Assunto'] );
        
        
        //carrega as classes necessárias para checar permissão
        $this->LoadModel('usuario/login', 'uobj');
        $this->LoadJsPlugin('menu/menu', 'mn');

        //gera o menu superior
        $this->mn->imprime();
        $var = $this->mn->draw($menu_array, "", 'menu-dropdown');
        EventTube::addEvent('menu-superior', $var);
    }    
    
    private function menu_lateral(){
        $cod_cat = (isset($_SESSION['ocorrencia/grupo']))?$_SESSION['ocorrencia/grupo']:0;
        $this->LoadModel('ocorrencia/grupo', 'gr');
        $arr = $this->gr->geraMenu($cod_cat);
        $this->LoadJsPlugin('menu/treeview', 'mt');
        $this->mt->imprime();
        $var = "";
        if(!empty ($arr))$var = $this->mt->draw($arr);
        if($var == "") {
            $var = "<b>Caro usuário</b>, não existe nenhum grupo no qual você tenha sido registrado";
        }
        
        $nome  = $this->gr->getItem($cod_cat);
        $title = ($cod_cat == 0)?'Grupos de Trabalho':@$nome['nome'];
        EventTube::addEvent('menu-lateral', "<h3>$title</h3>$var");
    }

    private function CheckMessages(){
        $this->LoadJsPlugin('jqueryui/slideto', 'slt');
        //$this->LoadJsPlugin('som/soundmanager', 'sm');
        //$this->sm->play(PROJECT.TEMPLATE_FOLDER.CURRENT_TEMPLATE."/sound/new_message.mp3", 'nmsg');
        
        $this->LoadResource('html', 'html');
        $link = $this->html->getLink('ocorrencia/ocorrencias/refresh');
        $this->html->LoadJQueryFunction("
           function CheckMessages(title){
                if(typeof(title) == 'undefined'){
                    title = document.title.split('(');
                    title = title[0];
                }
                
                if(typeof(msg_name) == 'undefined'){
                    msg_name = $('#mensagens #a_mensagens').html();
                }
                var popup = '#messages #popup';
                var current_message = $(popup).html();
                $.ajax({
                    url: '$link',
                    data:{'ajax':'true'},
                    type:'post',
                    dataType: 'json',
                    success: function(json) {
                        if(json.unread <= 0) {
                            document.title = title;
                            $('#mensagens #a_mensagens').html(msg_name);
                            $(popup).slideUp('slow').html('');
                            return;
                        }
                        document.title = '('+json.unread+') ' + title;
                        $('#mensagens #a_mensagens').html(msg_name +' ('+json.unread+')');
                        //soundManager.play('nmsg');
                
                        if(typeof(json.msg) == 'undefined') return;
                        if(current_message == json.msg) return;
                        current_message = json.msg;
                        $(popup).slideUp('slow').html(json.msg);
                        $(popup).slideto({ slide_duration: 'slow', offset: -55});
                        $(popup).slideDown('slow');
                    }
                });
           }
            var title = document.title;
            CheckMessages(title);
            setInterval(function(){CheckMessages(title)}, 62000);
        ");
    }
    
    public function setAdminVars(){}
   
}
?>